import { createApp } from 'vue'
import App from './App.vue'
import router from "@/router/index.js";

import 'font-awesome/css/font-awesome.min.css'
import axios from "axios";
import qs from 'qs';
import {
    getCurDate,
    setSessionStorage,
    getSessionStorage,
    removeSessionStorage,
    setLocalStorage,
    getLocalStorage,
    removeLocalStorage
} from '@/assets/common.js'

const app = createApp(App)

// 设置axios的基础url部分
axios.defaults.baseURL = 'http://localhost:5173/elm-api/'

// 将axios等工具挂载到全局属性上
app.config.globalProperties.$axios = axios
app.config.globalProperties.$qs = qs
app.config.globalProperties.$getCurDate = getCurDate
app.config.globalProperties.$setSessionStorage = setSessionStorage
app.config.globalProperties.$getSessionStorage = getSessionStorage
app.config.globalProperties.$removeSessionStorage = removeSessionStorage
app.config.globalProperties.$setLocalStorage = setLocalStorage
app.config.globalProperties.$getLocalStorage = getLocalStorage
app.config.globalProperties.$removeLocalStorage = removeLocalStorage

// 设置路由守卫
router.beforeEach((to, from, next) => {
    let user = sessionStorage.getItem('user')
    // 除了登录、注册、首页、商家列表、商家信息之外，都需要判断是否登录
    if (!(
        to.path === '/' ||
        to.path === '/index' ||
        to.path === '/businessList' ||
        to.path === '/businessInfo' ||
        to.path === '/login' ||
        to.path === '/register'
    )) {
        if (user === null) {
            // 如果未登录，跳转到登录页
            return next({ path: '/login' })
        }
    }
    next()
})

app.use(router)
app.mount('#app')